Skip to main content

05 计算机指令

软硬件接口中 CPU 的作用

硬件角度:一个超大规模集成电路,通过电路实现了加法、乘法乃至各种各样的处理逻辑

软件角度:执行各种计算机指令(Instruction Code)的逻辑机器

CPU 支持的语言,就是一组计算机指令集

存储程序型计算机:计算机程序平时存储在存储器中

编译及汇编

画板

# test.c
int main()
{
int a = 1;
int b = 2;
a = a + b;
}

指令和机器码

  1. 算术类指令:加减乘除
  2. 数据传输类指令:变量赋值、内存读写数据
  3. 逻辑类指令:与或非
  4. 条件分支类指令:if/else
  5. 无条件跳转指令:调用函数

MIPS

由 MIPS 技术公司在 80 年代中期设计出来的 CPU 指令集

R 指令

一般用来做算术和逻辑操作,里面有读取和写入数据的寄存器的地址。如果是逻辑位移操作,后面还有位移操作的位移量,而最后的功能码,则是在前面的操作码不够的时候,扩展操作码表示对应的具体指令的。

I 指令

通常是用在数据传输、条件分支,以及在运算的时候使用的并非变量还是常数的时候。这个没有位移量和操作码,也没有第三个寄存器,而是把这三部分直接合并成了一个地址值或者一个常数。

J 指令

一个跳转指令,高 6 位之外的 26 位都是一个跳转后的地址。

add $t0,$s2,$s1